package com.zhuiyun.project.api.video.mobileVideo.service;

import com.zhuiyun.project.api.video.mobileVideo.entity.FollowWithInterest;
import com.zhuiyun.project.api.video.mobileVideo.entity.MobileVideo;
import com.zhuiyun.project.api.video.mobileVideo.entity.UserVideoCollect;
import com.zhuiyun.project.api.video.mobileVideo.entity.UserVideoLike;
import com.zhuiyun.project.api.video.mobileVideo.model.*;
import com.zhuiyun.project.common.errorCode.CommonException;
import com.zhuiyun.project.common.response.CommonResult;
import com.zhuiyun.project.utils.pageUtil.PageRequest;
import com.zhuiyun.project.utils.pageUtil.PageResult;

import java.util.List;

/**
 * @ClassName MobileVideoService
 * @Description 移动端视频服务类
 * @Author qsh
 * @Date 2024/3/6 8:36
 **/
public interface MobileVideoService {
    /**
    * @Author qsh
    * @Description 查询推荐页视频
    * @Date 2024/3/8 9:36
    * @Return java.util.List<com.zhuiyun.project.api.video.mobileVideo.entity.MobileVideo>

    */
    PageResult MobileVideoList(PageRequest pageRequest);

    /**
     * @Author qsh
     * @Description 查询关注页视频
     * @Date 2024/3/8 9:36
     * @Return java.util.List<com.zhuiyun.project.api.video.mobileVideo.entity.MobileVideo>

     */
    PageResult MobileVideoFollow(String redisKey,PageRequest pageRequest);

    /**
    * @Author qsh
    * @Description 查询用户点赞视频id（用于高亮交互图标
    * @Date 2024/3/18 15:29
    * @Return java.util.List<com.zhuiyun.project.api.video.mobileVideo.entity.UserVideoLike>

    */
    List<UserVideoLike> LikeList(String redisKey);

    /**
     * @Author qsh
     * @Description 查询用户收藏视频id（用于高亮交互图标
     * @Date 2024/3/18 15:29
     * @Return java.util.List<com.zhuiyun.project.api.video.mobileVideo.entity.UserVideoLike>

     */
    List<UserVideoCollect> collectList(String redisKey);

    /**
     * @Author qsh
     * @Description 查询用户关注UpId（用于高亮交互图标
     * @Date 2024/3/18 15:29
     * @Return java.util.List<com.zhuiyun.project.api.video.mobileVideo.entity.UserVideoLike>

     */
    List<FollowWithInterest> followList(String redisKey);

    /**
    * @Author qsh
    * @Description 关注
    * @Date 2024/3/14 9:28
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param followWithInterestModel
    */
    CommonResult UserFollow(FollowWithInterestModel followWithInterestModel) throws CommonException;

    /**
    * @Author qsh
    * @Description 点赞
    * @Date 2024/3/8 10:21
    * @Return com.zhuiyun.project.common.response.CommonResult
    * @param userVideoLikeModel
    */
    CommonResult UserLike(UserVideoLikeModel userVideoLikeModel,Integer idx) throws CommonException;

    /**
     * @Author qsh3265 2750
     * @Description 收藏
     * @Date 2024/3/8 10:21
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param userVideoCollectModel
     */
    CommonResult UserFavorites(UserVideoCollectModel userVideoCollectModel, Integer idc) throws CommonException;

    /**
     * @Author qsh
     * @Description 持久化点赞数据
     * @Date 2024/3/8 10:21
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param videoIndexing
     */
    CommonResult Likes(MobileVideo mobileVideo,Integer videoIndexing) throws CommonException;

    /**
     * @Author qsh
     * @Description 持久化收藏数据
     * @Date 2024/3/8 10:21
     * @Return com.zhuiyun.project.common.response.CommonResult
     * @param videoIndexing
     */
    CommonResult collect(MobileVideo mobileVideo,Integer videoIndexing) throws CommonException;

    /**
    * @Author qsh
    * @Description 查询视频数据（点赞数、评论数、收藏数。。
    * @Date 2024/3/11 14:15
    * @Return com.zhuiyun.project.common.response.CommonResult

    */
//    CommonResult VideoLikeCounts();


}
